package com.whfc.emp.dao;

import com.whfc.emp.entity.ConfirmationRecord;
import com.whfc.entity.dto.Apply.rep.ArrivalConfirmationDTO;
import com.whfc.entity.dto.Apply.req.AppEntryApplicationReq;
import org.apache.ibatis.annotations.Param;
import java.util.List;

public interface ConfirmationRecordMapper {
    // 新增记录
    int insert(ConfirmationRecord record);
    
    // 选择性新增（只插入非空字段）
    int insertSelective(ConfirmationRecord record);
    
    // 根据ID查询
    ConfirmationRecord selectByPrimaryKey(Integer id);
    
    // 根据计划ID查询
    ConfirmationRecord selectByPlanId(Integer planId);
    
    // 根据确认人查询
    List<ConfirmationRecord> selectByConfirmer(@Param("confirmerId") Integer confirmerId);
    
    // 分页查询所有记录
    List<ConfirmationRecord> selectAll(@Param("planId") Integer planId);
    
    // 根据条件查询
    List<ConfirmationRecord> selectByCondition(ConfirmationRecord record);
    
    // 更新到场确认信息
    int updateArrivalInfo(ConfirmationRecord record);
    
    // 更新离场确认信息
    int updateDepartureInfo(ConfirmationRecord record);
    
    // 更新危险气体数值
    int updateWarnValue(@Param("planId") Integer planId, @Param("warnValue") Integer warnValue);
    
    // 全字段更新
    int updateByPrimaryKey(ConfirmationRecord record);
    
    // 选择性更新（只更新非空字段）
    int updateByPrimaryKeySelective(ConfirmationRecord record);
    
    // 根据ID删除
    int deleteByPrimaryKey(Integer id);
    
    // 根据计划ID删除
    int deleteByPlanId(Integer planId);

    List<ArrivalConfirmationDTO> selectArrivalConfirmationList(AppEntryApplicationReq req);

    List<ArrivalConfirmationDTO> selectArrivalConfirmationExitList(AppEntryApplicationReq req);
}